Various types of symbols can be used to encode information for various purposes, such as automated part identification. A barcode is a type of symbol that encodes information using a binary spatial pattern that is typically rectangular. A one-dimensional barcode encodes the information with one or more spatially contiguous sequences of alternating parallel bars and spaces (e.g., elements) of varying width. For certain types of one-dimensional barcodes (e.g., often called multi-width barcodes), the width of each element is an integer multiple of modules. A two-dimensional barcode typically encodes information as a uniform grid of module elements, each of which can be black or white.
Typically, barcodes are created by printing (e.g., with ink) or marking (e.g., by etching) bar or module elements upon a uniform reflectance substrate (e.g. paper or metal). The bars or dark modules typically have a lower reflectance than the substrate, and therefore appear darker than the spaces between them (e.g., as when a barcode is printed on white paper using black ink). But barcodes can be printed in other manners, such as when a barcode is printed on a black object using white paint. To differentiate a barcode more readily from the background, the symbol is typically placed relatively distant from other printing or visible structures. Such distance creates a space, often referred to as a quiet zone, both prior to the first bar and after the last bar (e.g., in the case of a one-dimensional barcode), or around the grid of module elements (e.g., in the case of a two-dimensional barcode). Alternatively, the spaces and quiet zones can be printed or marked, and the bars are implicitly formed by the substrate.
However, readers often have difficulty decoding barcodes that are under-resolved, such as barcodes that are under-sampled (e.g., due to low sampling rates or low resolution sensors) and/or blurred (e.g., due to poor focus of the reader, or the effects of motion).